package com.ply.flashsalessystem.config.onlineCount;


import com.ply.flashsalessystem.entity.result.Result;
import lombok.extern.slf4j.Slf4j;

import java.time.LocalDateTime;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author XiaoPan
 * date: 2022/5/9 15:01
 * <p>
 * action:
 */
@Slf4j
public class OnlineCount {
    //统计在线人数的测试  精确时间 60 秒
    public static Map<String, LocalDateTime> map = new ConcurrentHashMap<>();

    // 更新 在线的时间
    public static void updateMap(String name){
        map.put(name,LocalDateTime.now().plusSeconds(60));
    }
    // 统计在线人数
    public static int getPeopleNums(){
        int count = 0;
//        获取迭代器
        LocalDateTime value = null;
        for (Map.Entry<String, LocalDateTime> next : OnlineCount.map.entrySet()) {
            value = next.getValue();
            log.debug("当前时间:{}, 过期时间: {}",LocalDateTime.now(), value);

            if (value.compareTo(LocalDateTime.now()) > 0) {
                count++;
            }
        }
        return count;
    }
}
